A number of protocols exist today by which data servers may be linked together. Typically, a pool of dedicated servers, which may include data base servers, file servers and printer servers, are found in a local network, these servers located at a single centralized location, such as in one room of a large building. The servers are linked together and to multiple remote users, or clients, in distant parts of the building by a cable system, which may include category 5 cables, optical cable or any other linking system that allows these data servers and the remote clients to communicate. The server pool may include a router coupled to the Internet, which provides Internet access to at least some of the clients of the system and/or an administrator of the system. In other systems, such as the Internet, a vast number of servers are located throughout the world, and communicate via common protocols.
In some instances the server pool or network may handle other types of data, such as monitoring building or plant facility functions which may include elevator operation, heating/cooling, fire and intruder alarm systems, and other operations related to operation of a large building or other facility. In this instance, a single server of the pool of servers may have applications configured to handle these operations. In these applications, and with growing use of handheld computing devices (personal digital assistants, or PDAs), such as Palm Pilot-type devices, another server in the pool may be configured to handle PDA data. Yet another server may be configured to handle cell to telephone traffic. Of course, each of these different types of devices has its own protocol with respect to routing, transmission, etc., requiring that there be a multitude of servers, or at least programs, to keep track of and handle data from these various sources. In addition, each of these servers or programs for handling different types of data is typically allocated a fixed amount of resources such as computer memory, operating environment and mass storage memory, i.e. hard drive storage, optical storage, and so forth. As such, a situation may arise wherein one program or server may be overloaded with respect to its capacity of allocated resources while other servers or programs are sitting idle or only operating under a light load. Additionally, in a widely distributed system, the complexity of managing the configuration of each component in the system presents problems with respect to coordinating different components, protocols, operating systems and other factors. For example, specialized programs may need to be written in order to compile/decompile transferred data across machine and protocol boundaries. These logistical problems in general tend to stack up and cause the distributed system to run less efficiently than would otherwise be the case.
Accordingly, it is one object of the invention to provide a server system or network wherein protocols for handling data are configured as the data is received, thereby eliminating a need for maintaining a program or server for each different type of data. It is another object of the invention to provide a server or network system wherein system resources are allocated as they are needed. Further objects of the invention include: providing a configurable method of collecting data from heterogeneous sources, providing a configurable control interface to manage heterogeneous devices and data sources, providing a configurable method of securely transferring collected data, command and control instructions and status information about the server system and attached external devices and data sources, providing a configurable method of formatting information in a common format that is then converted to user specifications for input and display to devices such as Internet enabled cell phones, PDAs, and third party applications or programmable interfaces, providing a configurable method for transmitting information across the server system to the above-mentioned user specified devices across various extensible media including, but not limited to, Ethernet, serial cables and analog/digital circuits, providing a server system that is dynamically able to reconfigure itself based on available resources, levels of server system usage and configurable extensible time schedules, providing, in one embodiment, a server system that forecasts future system configuration needs based on real-time analysis of system load and historical analysis of past trends in system load and resource availability, providing, in another embodiment, a server system divided into two subsystems, a neutral exchange server subsystem and a “guardian” subsystem wherein the guardian subsystem provides dynamic reconfiguration, providing a server system that is highly fault-tolerant through the use of redundant system components and circuits with real-time selection of server system components and aforementioned circuits based on availability, transmission speeds and utilization factors, providing a server system that is securely extensible through the use of authentication methods provided at runtime and defined by both the server system and administrators of the server system, providing a server system that uses intelligent agents (independent processes) to identify potentially malicious attacks from computer virus by monitoring a volume of incoming and outgoing server system traffic and by using intelligent agents (in the guardian subsystem) to search for recognizable virus patterns (footprints) in user data transmitted through, and maintained by, the server system, providing for interface to third party virus packages (such as Norton™, VirusShield™, etc.) to add a higher level of assurance for newly found virus, and for providing an interface to public news servers for the receipt and transmission of hours reports.